package controleur;

public class ControleurDeplacement implements Runnable {
	// Variable(s) statique(s)
	private static ControleurDeplacement instance = null;
	
	// Variable(s) d'instance
	private int valeurX = 500;
	private int valeurY = 500;
	
	// Constroleur(s)
	private ControleurDeplacement() {
		
	}
	
	// Accesseur(s)
	public int getValeurX() {
		return this.valeurX;
	}
	
	public int getValeurY() {
		return this.valeurY;
	}
	
	// Mutateur(s)
	public void setValeurX(int x) {
		this.valeurX=x;
	}
	
	public void setValeurY(int y) {
		this.valeurY=y;
	}
	
	// Methode(s)
	@Override
	public void run() {
		Controleur con = Controleur.getInstance();
		while(true) {
			if(con != null) {
				if(this.valeurX >= 750) {
					con.setX(con.getX()+1);
				}
				if(this.valeurX <= 250) {
					con.setX(con.getX()-1);
				}
				if(this.valeurY >= 750) {
					con.setY(con.getY()-1);
				}
				if(this.valeurY <= 250) {
					con.setY(con.getY()+1);
				}
				con.getFenetre().repaint();
				try {
					Thread.sleep(2);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
	
	// Methode(s) statique(s)
	public static ControleurDeplacement getInstance() {
		if(ControleurDeplacement.instance==null) {
			ControleurDeplacement.instance = new ControleurDeplacement();
		} 
		return ControleurDeplacement.instance;
	}
}
